<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <div id='test'></div>
    <script src="./js/react.development.js"></script>
     <script src="./js/react-dom.development.js"></script>
     <script src="./js/babel.min.js"></script>
     <script type="text/babel">
        //  let _this = null

         class Wantter extends React.Component{
             // 构造器调用一次
            constructor(props){
                super(props)
                this.state = {
                    hot:true
                }
                // 在实例上  -----     在原型上
                this.setHot = this.setHot.bind(this) // bind返回一个新函数 同时修改this
            }

            // 调用 n 次
            setHot(){
                // Wantteer 中的方法默认开启严格模式

                // _this.state.hot = !_this.state.hot
                // 状态不能直接更改!!!
                // this.state.hot = !this.state.hot 
                // 状态必须通过setSate 更新
           
                // setSate 更新是一个合并的动作 没有进行更改是原有数据不会丢失
                this.setState({
                    hot:!this.state.hot
                })
            }

            // render 调用 1+n 次  m(setState 调用的次数)
             render(h) {
                 console.log(this);
                //  _this = this
                 // onClick='function' 必须是函数
                 // 此时是将this.seyHot 赋给 onclick 并未调用
                return <h2 onClick={this.setHot}>今天天气很{this.state.hot?'炎热':'凉爽'}</h2>   
             }
         }
         ReactDOM.render(<Wantter/>, document.querySelector('#test'))
     </script>
</body>
</html>